In a virtual desktop infrastructure environment, a framebuffer encoding system is used to prepare images for display. An agent program at a remote desktop/server retrieves framebuffer image data and encodes the image data into bitstream to send to a client device. The client device decodes the framebuffer image data and renders the image data in the client display system. The agent program could detect the changed area of the framebuffer by comparing with the last frame and encoding only the updated area. The updated area is generally block/slice aligned, so the encoded area tends to be a little larger than the updated area. The client does not know the exact updated area and draws the whole updated area in the client display system. Therefore, a larger amount of data is transmitted from the server to the client than is necessary to only update the updated area of the image, and more computing power is used at the client device than necessary to render only the updated area of the image.